<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SC2API: sc2::Coordinator Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="SC2-Logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">SC2API
   </div>
   <div id="projectbrief">An API for AI for StarCraft II</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>sc2</b></li><li class="navelem"><a class="el" href="classsc2_1_1_coordinator.html">Coordinator</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classsc2_1_1_coordinator-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">sc2::Coordinator Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="classsc2_1_1_coordinator.html" title="Coordinator of one or more clients. Used to start, step and stop games and replays. ">Coordinator</a> of one or more clients. Used to start, step and stop games and replays.  
 <a href="classsc2_1_1_coordinator.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="sc2__coordinator_8h_source.html">sc2_coordinator.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ada059b9a60d901be047ef33ce612c5d2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#ada059b9a60d901be047ef33ce612c5d2">LoadSettings</a> (int argc, char **argv)</td></tr>
<tr class="separator:ada059b9a60d901be047ef33ce612c5d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a555587bc85ac437711d15b569c75181a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a555587bc85ac437711d15b569c75181a">SetMultithreaded</a> (bool value)</td></tr>
<tr class="separator:a555587bc85ac437711d15b569c75181a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a602e6ead93e360771ce36d6ac782fc2a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a602e6ead93e360771ce36d6ac782fc2a">SetRealtime</a> (bool value)</td></tr>
<tr class="separator:a602e6ead93e360771ce36d6ac782fc2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cea718f571effbe25b771315628c685"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a7cea718f571effbe25b771315628c685">SetStepSize</a> (int step_size)</td></tr>
<tr class="separator:a7cea718f571effbe25b771315628c685"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad906656238e13a8bab21c46f50aecc3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#ad906656238e13a8bab21c46f50aecc3d">SetProcessPath</a> (const std::string &amp;path)</td></tr>
<tr class="separator:ad906656238e13a8bab21c46f50aecc3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4071b2072ce3120b135c37c7e7587d1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#ac4071b2072ce3120b135c37c7e7587d1">SetDataVersion</a> (const std::string &amp;version)</td></tr>
<tr class="separator:ac4071b2072ce3120b135c37c7e7587d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadbfd927d66314a4eb949b2de2ae37b4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#aadbfd927d66314a4eb949b2de2ae37b4">SetTimeoutMS</a> (uint32_t timeout_ms=kDefaultProtoInterfaceTimeout)</td></tr>
<tr class="separator:aadbfd927d66314a4eb949b2de2ae37b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaad48921bac2f4f84471de5e9cff75d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#aaad48921bac2f4f84471de5e9cff75d5">SetPortStart</a> (int port_start)</td></tr>
<tr class="separator:aaad48921bac2f4f84471de5e9cff75d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab46aec5712f6ec8ef12b03854f6e0495"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#ab46aec5712f6ec8ef12b03854f6e0495">SetFeatureLayers</a> (const <a class="el" href="structsc2_1_1_feature_layer_settings.html">FeatureLayerSettings</a> &amp;settings)</td></tr>
<tr class="separator:ab46aec5712f6ec8ef12b03854f6e0495"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace8a0630c6b61d28e81c94bbebad3d7d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#ace8a0630c6b61d28e81c94bbebad3d7d">SetRender</a> (const <a class="el" href="structsc2_1_1_render_settings.html">RenderSettings</a> &amp;settings)</td></tr>
<tr class="separator:ace8a0630c6b61d28e81c94bbebad3d7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b0eca71a6f7575f35d1dd5c3e5d73cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a9b0eca71a6f7575f35d1dd5c3e5d73cf">SetWindowSize</a> (int width, int height)</td></tr>
<tr class="separator:a9b0eca71a6f7575f35d1dd5c3e5d73cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e372788e11c3916fdf1982eb2e55511"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a6e372788e11c3916fdf1982eb2e55511">SetWindowLocation</a> (int x, int y)</td></tr>
<tr class="separator:a6e372788e11c3916fdf1982eb2e55511"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8aedd93ba1d7eb9e81b37b34ff76147c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a8aedd93ba1d7eb9e81b37b34ff76147c">SetUseGeneralizedAbilityId</a> (bool value)</td></tr>
<tr class="separator:a8aedd93ba1d7eb9e81b37b34ff76147c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa59950d8ccb9d010288df3e1e6045eb9"><td class="memItemLeft" align="right" valign="top"><a id="aa59950d8ccb9d010288df3e1e6045eb9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#aa59950d8ccb9d010288df3e1e6045eb9">AddCommandLine</a> (const std::string &amp;option)</td></tr>
<tr class="memdesc:aa59950d8ccb9d010288df3e1e6045eb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a command line argument to be fed to StarCraft II when starting. <br /></td></tr>
<tr class="separator:aa59950d8ccb9d010288df3e1e6045eb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed4bf1a5cf1519fc0488bc5d4641a582"><td class="memItemLeft" align="right" valign="top"><a id="aed4bf1a5cf1519fc0488bc5d4641a582"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#aed4bf1a5cf1519fc0488bc5d4641a582">SetParticipants</a> (const std::vector&lt; <a class="el" href="structsc2_1_1_player_setup.html">PlayerSetup</a> &gt; &amp;participants)</td></tr>
<tr class="memdesc:aed4bf1a5cf1519fc0488bc5d4641a582"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets up the bots and whether they are controlled by in-built AI, human or a custom bot. <br /></td></tr>
<tr class="separator:aed4bf1a5cf1519fc0488bc5d4641a582"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac478d6f4c1b9e6c98514b7212c7997fc"><td class="memItemLeft" align="right" valign="top"><a id="ac478d6f4c1b9e6c98514b7212c7997fc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetReplayRecovery</b> (bool value)</td></tr>
<tr class="separator:ac478d6f4c1b9e6c98514b7212c7997fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16ebfba44b1abbc303770e4958922d05"><td class="memItemLeft" align="right" valign="top"><a id="a16ebfba44b1abbc303770e4958922d05"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a16ebfba44b1abbc303770e4958922d05">AddReplayObserver</a> (<a class="el" href="classsc2_1_1_replay_observer.html">ReplayObserver</a> *replay_observer)</td></tr>
<tr class="memdesc:a16ebfba44b1abbc303770e4958922d05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an instance of <a class="el" href="classsc2_1_1_replay_observer.html" title="A client for running a replay. ">ReplayObserver</a>, each <a class="el" href="classsc2_1_1_replay_observer.html" title="A client for running a replay. ">ReplayObserver</a> will run a separate StarCraft II client. <br /></td></tr>
<tr class="separator:a16ebfba44b1abbc303770e4958922d05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac06566447119abac229fd671d39ff2ee"><td class="memItemLeft" align="right" valign="top"><a id="ac06566447119abac229fd671d39ff2ee"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#ac06566447119abac229fd671d39ff2ee">LaunchStarcraft</a> ()</td></tr>
<tr class="memdesc:ac06566447119abac229fd671d39ff2ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uses settings gathered from LoadSettings, specifically the path to the executable, to run StarCraft II. <br /></td></tr>
<tr class="separator:ac06566447119abac229fd671d39ff2ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32ea6e639a39ec1fc813dffa2993d5b1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a32ea6e639a39ec1fc813dffa2993d5b1">StartGame</a> (const std::string &amp;map_path=std::string())</td></tr>
<tr class="separator:a32ea6e639a39ec1fc813dffa2993d5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af70ba5246f9d447eb8a69cd76d364eee"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#af70ba5246f9d447eb8a69cd76d364eee">Update</a> ()</td></tr>
<tr class="separator:af70ba5246f9d447eb8a69cd76d364eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ae051962776e946e457791f70bf6d2"><td class="memItemLeft" align="right" valign="top"><a id="af8ae051962776e946e457791f70bf6d2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#af8ae051962776e946e457791f70bf6d2">LeaveGame</a> ()</td></tr>
<tr class="memdesc:af8ae051962776e946e457791f70bf6d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests for the currently running game to end. <br /></td></tr>
<tr class="separator:af8ae051962776e946e457791f70bf6d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31058950f418aa5d488fbda684c02146"><td class="memItemLeft" align="right" valign="top"><a id="a31058950f418aa5d488fbda684c02146"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a31058950f418aa5d488fbda684c02146">AllGamesEnded</a> () const</td></tr>
<tr class="memdesc:a31058950f418aa5d488fbda684c02146"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if all running games have ended. <br /></td></tr>
<tr class="separator:a31058950f418aa5d488fbda684c02146"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86987e853e780259867996f4350e3a87"><td class="memItemLeft" align="right" valign="top"><a id="a86987e853e780259867996f4350e3a87"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a86987e853e780259867996f4350e3a87">SetReplayPath</a> (const std::string &amp;path)</td></tr>
<tr class="memdesc:a86987e853e780259867996f4350e3a87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the path for to a folder of replays to analyze. <br /></td></tr>
<tr class="separator:a86987e853e780259867996f4350e3a87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c4f1b394633b6379aa65bfc264d6f74"><td class="memItemLeft" align="right" valign="top"><a id="a4c4f1b394633b6379aa65bfc264d6f74"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a4c4f1b394633b6379aa65bfc264d6f74">LoadReplayList</a> (const std::string &amp;file_path)</td></tr>
<tr class="memdesc:a4c4f1b394633b6379aa65bfc264d6f74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads replays from a file. <br /></td></tr>
<tr class="separator:a4c4f1b394633b6379aa65bfc264d6f74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a063c9a9f2d31bc48fb2d4db0aaa7d791"><td class="memItemLeft" align="right" valign="top"><a id="a063c9a9f2d31bc48fb2d4db0aaa7d791"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a063c9a9f2d31bc48fb2d4db0aaa7d791">SaveReplayList</a> (const std::string &amp;file_path)</td></tr>
<tr class="memdesc:a063c9a9f2d31bc48fb2d4db0aaa7d791"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves replays to a file. <br /></td></tr>
<tr class="separator:a063c9a9f2d31bc48fb2d4db0aaa7d791"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a451a422eb904f69b55b273ddfe3f0e58"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a451a422eb904f69b55b273ddfe3f0e58">HasReplays</a> () const</td></tr>
<tr class="separator:a451a422eb904f69b55b273ddfe3f0e58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a177f926215050e4d249df208b03a387d"><td class="memItemLeft" align="right" valign="top"><a id="a177f926215050e4d249df208b03a387d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a177f926215050e4d249df208b03a387d">WaitForAllResponses</a> ()</td></tr>
<tr class="memdesc:a177f926215050e4d249df208b03a387d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blocks for all bots to receive any pending responses. <br /></td></tr>
<tr class="separator:a177f926215050e4d249df208b03a387d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abddb83c4a267e3592932da7d198a97d5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#abddb83c4a267e3592932da7d198a97d5">RemoteSaveMap</a> (const void *data, int data_size, std::string remote_path)</td></tr>
<tr class="memdesc:abddb83c4a267e3592932da7d198a97d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves a binary blob as a map to a remote location.  <a href="#abddb83c4a267e3592932da7d198a97d5">More...</a><br /></td></tr>
<tr class="separator:abddb83c4a267e3592932da7d198a97d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f256d8cc391acd89a29e4369112d69b"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc2_1_1_coordinator.html#a9f256d8cc391acd89a29e4369112d69b">GetExePath</a> () const</td></tr>
<tr class="separator:a9f256d8cc391acd89a29e4369112d69b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classsc2_1_1_coordinator.html" title="Coordinator of one or more clients. Used to start, step and stop games and replays. ">Coordinator</a> of one or more clients. Used to start, step and stop games and replays. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a9f256d8cc391acd89a29e4369112d69b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f256d8cc391acd89a29e4369112d69b">&#9670;&nbsp;</a></span>GetExePath()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string sc2::Coordinator::GetExePath </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Gets the game executable path. </p><dl class="section return"><dt>Returns</dt><dd>The game executable path. </dd></dl>

</div>
</div>
<a id="a451a422eb904f69b55b273ddfe3f0e58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a451a422eb904f69b55b273ddfe3f0e58">&#9670;&nbsp;</a></span>HasReplays()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sc2::Coordinator::HasReplays </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determines if there are unprocessed replays. </p><dl class="section return"><dt>Returns</dt><dd>Is true if there are replays left. </dd></dl>

</div>
</div>
<a id="ada059b9a60d901be047ef33ce612c5d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada059b9a60d901be047ef33ce612c5d2">&#9670;&nbsp;</a></span>LoadSettings()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sc2::Coordinator::LoadSettings </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Used to load settings. Settings will be discovered in the following order:</p><ol type="1">
<li>If command line arguments are provided it will use them. Invoke binary with &ndash;help to see expected arguments.</li>
<li>(Recommended) If the StarCraft II binary has been run the function will auto discover its location. <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">argc</td><td>Provided in main signature. </td></tr>
    <tr><td class="paramname">argv</td><td>Provided in main signature. </td></tr>
    <tr><td class="paramname">game_settings</td><td>The name of the settings file. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if settings were found or discovered, false otherwise. </dd></dl>
</li>
</ol>

</div>
</div>
<a id="abddb83c4a267e3592932da7d198a97d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abddb83c4a267e3592932da7d198a97d5">&#9670;&nbsp;</a></span>RemoteSaveMap()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sc2::Coordinator::RemoteSaveMap </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>data_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>remote_path</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Saves a binary blob as a map to a remote location. </p>
<p>&lt; </p><dl class="section return"><dt>Returns</dt><dd>Is true if the save is successful. </dd></dl>

</div>
</div>
<a id="ac4071b2072ce3120b135c37c7e7587d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4071b2072ce3120b135c37c7e7587d1">&#9670;&nbsp;</a></span>SetDataVersion()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetDataVersion </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>version</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set the correct data version of a replay to allow faster replay loading. Saves a few seconds if replay is not up to date. Works only in combination with correct process path set by "SetProcessPath". </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">version</td><td>Look in "protocol/buildinfo/versions.json" for the property "data-hash". Or read it from "ReplayInfo.data_version". </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab46aec5712f6ec8ef12b03854f6e0495"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab46aec5712f6ec8ef12b03854f6e0495">&#9670;&nbsp;</a></span>SetFeatureLayers()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetFeatureLayers </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structsc2_1_1_feature_layer_settings.html">FeatureLayerSettings</a> &amp;&#160;</td>
          <td class="paramname"><em>settings</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Indicates whether feature layers should be provided in the observation. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">settings</td><td>Configuration of feature layer settings. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structsc2_1_1_feature_layer_settings.html" title="Settings for feature layer output. ">FeatureLayerSettings</a> </dd></dl>

</div>
</div>
<a id="a555587bc85ac437711d15b569c75181a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a555587bc85ac437711d15b569c75181a">&#9670;&nbsp;</a></span>SetMultithreaded()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetMultithreaded </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Specifies whether bots or replays OnStep function should be run in parallel. If set to true make sure your bots are thread-safe if they reach into shared code. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>True to multithread, false otherwise. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aaad48921bac2f4f84471de5e9cff75d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaad48921bac2f4f84471de5e9cff75d5">&#9670;&nbsp;</a></span>SetPortStart()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetPortStart </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>port_start</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets the first port number to use. Subsequent port assignments are sequential. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">port_start</td><td>First port number. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ad906656238e13a8bab21c46f50aecc3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad906656238e13a8bab21c46f50aecc3d">&#9670;&nbsp;</a></span>SetProcessPath()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetProcessPath </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets the path to the StarCraft II binary. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>Absolute file path. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a602e6ead93e360771ce36d6ac782fc2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a602e6ead93e360771ce36d6ac782fc2a">&#9670;&nbsp;</a></span>SetRealtime()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetRealtime </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Specifies whether the game should run in realtime or not. If the game is running in real time that means the coordinator is not stepping it forward. The game is running and your bot reaches into it asynchronously to read state. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>True to be realtime, false otherwise. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ace8a0630c6b61d28e81c94bbebad3d7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace8a0630c6b61d28e81c94bbebad3d7d">&#9670;&nbsp;</a></span>SetRender()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetRender </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structsc2_1_1_render_settings.html">RenderSettings</a> &amp;&#160;</td>
          <td class="paramname"><em>settings</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structsc2_1_1_render_settings.html" title="Settings for an RGB rendered output. ">RenderSettings</a> </dd></dl>

</div>
</div>
<a id="a7cea718f571effbe25b771315628c685"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cea718f571effbe25b771315628c685">&#9670;&nbsp;</a></span>SetStepSize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetStepSize </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>step_size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets the number of game loops to run for each step. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">step_size</td><td>Number of gameloops to run for each step. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aadbfd927d66314a4eb949b2de2ae37b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadbfd927d66314a4eb949b2de2ae37b4">&#9670;&nbsp;</a></span>SetTimeoutMS()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetTimeoutMS </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>timeout_ms</em> = <code>kDefaultProtoInterfaceTimeout</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets the timeout for network operations. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>timeout_ms in milliseconds. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a8aedd93ba1d7eb9e81b37b34ff76147c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8aedd93ba1d7eb9e81b37b34ff76147c">&#9670;&nbsp;</a></span>SetUseGeneralizedAbilityId()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetUseGeneralizedAbilityId </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Uses generalized abilities where possible. Example: BUILD_TECHLAB_BARRACKS, BUILD_TECHLAB_FACTORY, BUILD_TECHLAB_STARPORT ability ids are generalized to BUILD_TECHLAB ability id in the observation. </p>

</div>
</div>
<a id="a6e372788e11c3916fdf1982eb2e55511"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e372788e11c3916fdf1982eb2e55511">&#9670;&nbsp;</a></span>SetWindowLocation()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetWindowLocation </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets the game window location. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>X position of game window. </td></tr>
    <tr><td class="paramname">y</td><td>y position of game window. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a9b0eca71a6f7575f35d1dd5c3e5d73cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b0eca71a6f7575f35d1dd5c3e5d73cf">&#9670;&nbsp;</a></span>SetWindowSize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc2::Coordinator::SetWindowSize </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>height</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets the game window dimensions. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">width</td><td>Width of game window. </td></tr>
    <tr><td class="paramname">height</td><td>Height of game window. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a32ea6e639a39ec1fc813dffa2993d5b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32ea6e639a39ec1fc813dffa2993d5b1">&#9670;&nbsp;</a></span>StartGame()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sc2::Coordinator::StartGame </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>map_path</em> = <code>std::string()</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Starts a game on a certain map. There are multiple ways to specify a map: Absolute path: Any .SC2Map file. Relative path: Any .SC2Map file relative to either the library or installation maps folder. Map name: Any BattleNet published map that has been locally cached. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">map_path</td><td>Path to the map to run. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the game started, false if there was errors or the game didn't start, override OnError callback to see the exact errors. </dd></dl>

</div>
</div>
<a id="af70ba5246f9d447eb8a69cd76d364eee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af70ba5246f9d447eb8a69cd76d364eee">&#9670;&nbsp;</a></span>Update()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sc2::Coordinator::Update </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Helper function used to actually run a bot. This function will behave differently in real-time compared to non real-time. In real-time there is no step sent over the wire but instead will request and read observations as the game runs.</p><ul>
<li>For non-real time Update will perform the following:<ol type="1">
<li>Step the simulation forward by a certain amount of game steps, this essentially moves the game loops forward.</li>
<li>Wait for the step to complete, the step is completed when a response is received and read from the StarCraft II binary.<ul>
<li>When the step is completed an Observation has been received. It is parsed and various client events are dispatched.</li>
</ul>
</li>
<li>Call the user's OnStep function.</li>
</ol>
</li>
<li>Real time applications will perform the following:<ol type="1">
<li>The Observation is directly requested. The process will block while waiting for it.</li>
<li>The Observation is parsed and client events are dispatched.</li>
<li><a class="el" href="classsc2_1_1_unit.html" title="A unit. Could be a structure, a worker or a military unit. ">Unit</a> actions batched from the <a class="el" href="classsc2_1_1_action_interface.html">ActionInterface</a> are dispatched. <dl class="section return"><dt>Returns</dt><dd>False if the game has ended, true otherwise. </dd></dl>
</li>
</ol>
</li>
</ul>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/sc2api/<a class="el" href="sc2__coordinator_8h_source.html">sc2_coordinator.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
